package com.ruoyi.project.system.domain;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal;

/**
 * 提现对象 sys_extract
 *
 * @author ruoyi
 * @date 2024-08-10
 */
public class SysExtract extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 提现记录单号 */
    private String extractId;

    /** 提现用户id */
    @Excel(name = "提现用户id")
    private Long userId;

    /** 收款方真实姓名 */
    @Excel(name = "收款方真实姓名")
    private String alipayName;

    /** 支付宝登录号 */
    @Excel(name = "支付宝登录号")
    private String alipayAccount;

    /** 提现额度 */
    @Excel(name = "提现额度")
    private BigDecimal amount;

    /** 支付宝转账订单号 */
    @Excel(name = "支付宝转账订单号")
    private String orderId;

    /** 支付宝支付资金流水号 */
    @Excel(name = "支付宝支付资金流水号")
    private String payFundOrderId;

    /** 转账单据状态 */
    @Excel(name = "转账单据状态")
    private String status;

    /** 订单支付时间 */
    @Excel(name = "订单支付时间")
    private String transDate;

    public SysExtract() {
    }

    public SysExtract(String extractId, String orderId,  String transDate, String status) {
        this.extractId = extractId;
        this.orderId = orderId;
        this.transDate = transDate;
        this.status = status;
    }

    public SysExtract(String extractId, String status) {
        this.extractId = extractId;
        this.status = status;
    }

    public SysExtract(String extractId, Long userId, String alipayName, String alipayAccount, BigDecimal amount, String status) {
        this.extractId = extractId;
        this.userId = userId;
        this.alipayName = alipayName;
        this.alipayAccount = alipayAccount;
        this.amount = amount;
        this.status = status;
        this.setCreateTime(DateUtils.getNowDate());
    }

    public void setExtractId(String extractId)
    {
        this.extractId = extractId;
    }

    public String getExtractId()
    {
        return extractId;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setAlipayName(String alipayName)
    {
        this.alipayName = alipayName;
    }

    public String getAlipayName()
    {
        return alipayName;
    }
    public void setAlipayAccount(String alipayAccount)
    {
        this.alipayAccount = alipayAccount;
    }

    public String getAlipayAccount()
    {
        return alipayAccount;
    }
    public void setAmount(BigDecimal amount)
    {
        this.amount = amount;
    }

    public BigDecimal getAmount()
    {
        return amount;
    }
    public void setOrderId(String orderId)
    {
        this.orderId = orderId;
    }

    public String getOrderId()
    {
        return orderId;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setTransDate(String transDate)
    {
        this.transDate = transDate;
    }

    public String getTransDate()
    {
        return transDate;
    }
    public void setPayFundOrderId(String payFundOrderId)
    {
        this.payFundOrderId = payFundOrderId;
    }

    public String getPayFundOrderId()
    {
        return payFundOrderId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("extractId", getExtractId())
                .append("userId", getUserId())
                .append("alipayName", getAlipayName())
                .append("alipayAccount", getAlipayAccount())
                .append("amount", getAmount())
                .append("orderId", getOrderId())
                .append("status", getStatus())
                .append("transDate", getTransDate())
                .append("payFundOrderId", getPayFundOrderId())
                .append("updateTime", getUpdateTime())
                .append("createTime", getCreateTime())
                .append("remark", getRemark())
                .toString();
    }
}